package com.aura.blog.service;


import com.aura.blog.dto.request.AddBlogRequest;
import com.aura.blog.dto.request.UpdateBlogRequest;
import com.aura.blog.dto.response.BlogInfoResponse;
import com.aura.blog.entity.BlogInfo;

import java.util.List;

public interface BlogService {
    /**
     * 获取博客列表
     * 
     * @return 博客信息响应列表
     */
    List<BlogInfoResponse> getList();

    /**
     * 根据博客ID获取博客详情
     * 
     * @param blogId 博客ID
     * @return 博客信息响应对象
     */
    BlogInfoResponse getBlogDetail(Integer blogId);

    /**
     * 根据博客ID获取博客信息
     * 
     * @param blogId 博客ID
     * @return 博客信息对象
     */
    BlogInfo getBlogInfo(Integer blogId);

    /**
     * 添加博客
     * 
     * @param addBlogRequest 添加博客请求对象
     * @return 是否添加成功
     */
    Boolean addBlog(AddBlogRequest addBlogRequest);

    /**
     * 更新博客
     * 
     * @param updateBlogRequest 更新博客请求对象
     * @return 是否更新成功
     */
    Boolean updateBlog(UpdateBlogRequest updateBlogRequest);

    /**
     * 删除博客（逻辑删除）
     * 
     * @param blogId 博客ID
     * @return 是否删除成功
     */
    Boolean deleteBlog(Integer blogId);
    
    /**
     * 根据用户ID获取该用户的所有博客列表
     * 
     * @param userId 用户ID
     * @return 博客信息响应列表
     */
    List<BlogInfoResponse> getBlogsByUserId(Integer userId);
    
    /**
     * 搜索博客（根据标题关键字）
     * 
     * @param keyword 搜索关键字
     * @return 博客信息响应列表
     */
    List<BlogInfoResponse> searchBlogs(String keyword);
}